//引入文件系统模块
const fs = require("fs");
const pathURL = require("../utils/path");
//引入判断文件是否存在的函数
const isDirExisted = require("../utils/exist");
const { validateFileName } = require('../utils/validate')

function createFileFinish (path) {
    //判断该文件是否存在
    if (!isDirExisted(path)) {
        //创建文件
        fs.writeFile(pathURL(path), "",
            function (err) {
                if (err) {
                    return console.error(err);
                }
                //进程间发送信息
                process.send("文件创建成功！");
                //console.log("文件创建成功!");
            });
    } else {
        //进程间发送信息
        process.send("该文件已存在");
        //console.log("该文件已存在！");
    }
};

//接受进程传来的创建文件夹命令
const createFile = (command = "createFile abc") => {
    //将命令转换成数组以空格隔开
    const comArr = command.split(" ");
    if (comArr.length === 2) {
        // 文件名是否包含非法字符
        if (validateFileName(comArr[comArr.length - 1])) {
            process.send('创建失败， 文件名不能包含以下任何字符： / \ : * ? " < > | ')
            return
        }
        //创建文件夹的具体步骤
        createFileFinish(comArr[1])
    } else {
        //进程间发送信息
        process.send("创建文件格式有误; 举例: createFile abc")
        // console.log("创建文件格式有误; 举例:createFile abc");
    }
}

//调用createFile功能
//createFile("hhh.txt");
//进程间接收信息
process.on('message', createFile);